Notification廣泛被使用在多App,最常見如Line或是遊戲有甚麼坑錢的活動的時候,都會跳一欄通知在手機的最上方,既然是這麼常見的功能一定要來講一下,到底我們怎們來發一個屬於自己的廣播呢?
首先我先來介紹幾個重要類別。
發送頻道,Notification會需要一個的發送的頻道。
設定此次廣播的特徵,包括圖示、內容等等多個屬性特徵,大多跟廣播有關的設定都在這裡。
通知實際Notification管理者,與Channel結合,負責發送。
//震動權限
<uses-permission android:name="android.permission.VIBRATE" />
//提示燈權限
<uses-permission android:name="android.permission.FLASHLIGHT"/>
//NotificationChannel 頻道建立
NotificationChannel channel = new NotificationChannel(
"MyChannel","Demo",NotificationManager.IMPORTANCE_DEFAULT);
//致能震動
channel.enableVibration(true);
//設定震動模式
channel.setVibrationPattern(new long[]{500, 500});
//致能閃燈
channel.enableLights(true);
//獲取NotificationManager
manager = getSystemService(NotificationManager.class);
//創建新頻道,與上一步的頻道結合。
manager.createNotificationChannel(channel);
Intent intent = new Intent(getApplicationContext(),MainActivity.class);
//設置Action
intent.setAction("Notification");
//將要發的通知加上點擊事件
PendingIntent pendingIntent = PendingIntent.getActivity
(MainActivity.this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder
= new NotificationCompat.Builder(MainActivity.this,CHANNEL_ID)
//提示欄的小圖示
.setSmallIcon(R.drawable.ic_baseline_arrow_back_24)
//標題
.setContentTitle("你的廣播!")
//內文
.setContentText("it幫幫忙Notification")
//發出時間
.setWhen(System.currentTimeMillis())
//設定鈴聲、震動等為預設值
.setDefaults(Notification.DEFAULT_ALL)
//設定震動
.setVibrate(new long[]{500l,1000l})
//設置被點擊後自動取消
.setAutoCancel(true)
//設置優先權
.setPriority(NotificationCompat.PRIORITY_HIGH)
//設置類型
.setCategory(NotificationCompat.CATEGORY_MESSAGE)
//設置此Notification Intend
.setContentIntent(pendingIntent);
//將NotificationCompat.Builder build()完,並notify(代表此Notification的id,NotificationCompat)
manager.notify(1,builder.build());
經過以上設定就完成一個簡單的通知發送了,我們來看看最後的效果。